함자
함자 (Functor)
1. 개요
함자(Functor)란 범주론(Category Theory)에서 하나의 범주에서 다른 범주로 구조를 보존하며 매핑하는 사상(Mapping)을 의미한다. 집합론에서 함수가 원소를 다른 원소로 대응시키듯, 함자는 범주의 구성 요소인 대상(Object)과 사상(Morphism)을 다른 범주의 대상과 사상으로 대응시키며, 그 과정에서 범주가 가진 대수적 구조(합성과 항등성)를 유지하는 역할을 한다.
2. 정의 및 수학적 조건
함자 $F: \mathcal{C} \to \mathcal{D}$는 범주 $\mathcal{C}$에서 범주 $\mathcal{D}$로의 매핑으로, 다음 두 가지 구성 요소와 두 가지 공리를 만족해야 한다.
2.1 구성 요소
- 대상 사상 (Object Mapping): $\mathcal{C}$의 모든 대상 $X$에 대해, $\mathcal{D}$의 대상 $F(X)$를 대응시킨다.
- 사상 사상 (Morphism Mapping): $\mathcal{C}$의 임의의 두 대상 $X, Y$ 사이의 사상 $f: X \to Y$에 대해, $\mathcal{D}$의 대상 $F(X), F(Y)$ 사이의 사상 $F(f): F(X) \to F(Y)$를 대응시킨다.
2.2 수학적 공리
함자가 되기 위해서는 다음의 조건을 반드시 만족해야 한다. - 항등 사상의 보존: 모든 대상 $X \in \mathcal{C}$에 대하여, $F(\text{id}_X) = \text{id}_{F(X)}$이다. - 합성의 보존: $\mathcal{C}$에서 두 사상 $f: X \to Y$와 $g: Y \to Z$가 합성 가능할 때, $F(g \circ f) = F(g) \circ F(f)$가 성립한다. (여기서 우변의 합성은 공역 범주 $\mathcal{D}$에서의 합성이다.)
2.3 범주 간 대응 관계
| 범주 $\mathcal{C}$ (정의역) | 범주 $\mathcal{D}$ (공역) | 비고 |
|---|---|---|
| 대상 $X$ | 대상 $F(X)$ | 대상의 변환 |
| 사상 $f: X \to Y$ | 사상 $F(f): F(X) \to F(Y)$ | 화살표(관계)의 변환 |
| 항등 사상 $\text{id}_X$ | 항등 사상 $\text{id}_{F(X)}$ | 구조 유지 (Identity) |
| 합성 $g \circ f$ | 합성 $F(g) \circ F(f)$ | 구조 유지 (Composition) |
3. 함자의 종류
함자는 사상의 방향을 어떻게 처리하느냐에 따라 공변 함자와 반변 함자로 나뉜다.
3.1 공변 함자 (Covariant Functor)
사상의 방향을 그대로 유지하는 함자이다. $f: X \to Y$일 때 $F(f): F(X) \to F(Y)$가 된다. 일반적인 '함자'라고 하면 보통 공변 함자를 의미한다.
3.2 반변 함자 (Contravariant Functor)
사상의 방향을 반대로 뒤집는 함자이다. $f: X \to Y$일 때 $F(f): F(Y) \to F(X)$가 된다. 이 경우, $\mathcal{C}$에서 $f: X \to Y$이고 $g: Y \to Z$일 때, $\mathcal{D}$에서는 $F(f): F(Y) \to F(X)$이고 $F(g): F(Z) \to F(Y)$가 된다. 따라서 합성 가능한 순서가 역전되어 $F(g \circ f) = F(f) \circ F(g)$가 성립하게 된다.
3.3 공변 vs 반변 비교 도식
$$ \begin{array}{|c|c|} \hline \text{공변 함자 (Covariant)} & \text{반변 함자 (Contravariant)} \\ \hline X \xrightarrow{f} Y \implies F(X) \xrightarrow{F(f)} F(Y) & X \xrightarrow{f} Y \implies F(Y) \xrightarrow{F(f)} F(X) \\ \hline F(g \circ f) = F(g) \circ F(f) & F(g \circ f) = F(f) \circ F(g) \\ \hline \end{array} $$
4. 특수 함자 및 합성
4.1 자기 함자 (Endofunctor)
정의역 범주와 공역 범주가 동일한 함자, 즉 $F: \mathcal{C} \to \mathcal{C}$인 함자를 자기 함자(Endofunctor)라고 한다. 자기 함자는 동일한 범주 내에서 대상과 사상을 변환하므로, 함자의 합성을 통해 더 복잡한 구조를 정의하는 기초가 된다.
4.2 함자의 합성 (Composition)
두 함자 $F: \mathcal{C} \to \mathcal{D}$와 $G: \mathcal{D} \to \mathcal{E}$가 존재할 때, 이들의 합성 함자 $G \circ F: \mathcal{C} \to \mathcal{E}$를 정의할 수 있다.
- 대상에 대한 정의: $(G \circ F)(X) = G(F(X))$
- 사상에 대한 정의: $(G \circ F)(f) = G(F(f))$
합성 함자 역시 항등 사상과 합성 공리를 만족하므로, 함자의 집합은 합성 연산에 대해 닫혀 있다.
5. 주요 예시
5.1 수학적 예시
- 망각 함자 (Forgetful Functor):
- 입력 범주: $\text{Grp}$ (군 범주) $\to$ 출력 범주: $\text{Set}$ (집합 범주)
- 설명: 군의 구조(연산)를 무시하고 단순히 그 원소들의 집합으로만 취급하는 함자이다.
- 기본군 함자 (Fundamental Group Functor):
- 입력 범주: $\text{Top}_*$ (기점 위상 공간 범주) $\to$ 출력 범주: $\text{Grp}$ (군 범주)
- 설명: 위상 공간을 그 공간의 루프들에 의해 생성되는 기본군으로 매핑한다.
5.2 컴퓨터 과학 예시 (Haskell)
함수형 프로그래밍에서 함자는 '컨테이너' 또는 '문맥'으로 해석된다. Haskell의 Functor 타입 클래스는 수학적 함자의 개념을 다음과 같이 구현한다.
-
범주론적 대응 관계:
f a(타입 생성자) $\to$ 대상 $F(X)$(a -> b)(함수) $\to$ 사상 $f: X \to Y$<a href="/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/Haskell/fmap" class="wiki-link wiki-link-missing">fmap</a>(함수) $\to$ 사상 사상 $F(f)$
-
코드 예제:
-- Functor 타입 클래스 정의 class Functor f where fmap :: (a -> b) -> f a -> f b -- List 함자 구현 예시 instance Functor [] where fmap = map -- 리스트의 각 요소에 함수를 적용하고 리스트 구조는 유지함 -- 사용 예시 -- fmap (+1) [1, 2, 3] => [2, 3, 4]
6. 자연 변환 (Natural Transformation)
자연 변환은 두 함자 사이의 매핑을 정의한다. 함자가 범주와 범주를 연결한다면, 자연 변환은 함자와 함자를 연결하는 '고차원적인 사상'이다.
두 함자 $F, G: \mathcal{C} \to \mathcal{D}$가 있을 때, 자연 변환 $\eta: F \Rightarrow G$는 $\mathcal{C}$의 모든 대상 $X$에 대해 $\mathcal{D}$의 사상 $\eta_X: F(X) \to G(X)$를 대응시키며, 임의의 사상 $f: X \to Y$에 대해 다음의 가환 도식이 성립해야 한다. $$G(f) \circ \eta_X = \eta_Y \circ F(f)$$
가환 도식 (Commutative Diagram):
graph TD
FX[F(X)] -->|F(f)| FY[F(Y)]
FX -->|η_X| GX[G(X)]
FY -->|η_Y| GY[G(Y)]
GX -->|G(f)| GY
7. 관련 개념 및 응용
- 요네다 보조정리 (Yoneda Lemma): 임의의 범주 $\mathcal{C}$의 대상 $X$가 그 대상으로부터 시작하는 함자 $\text{Hom}(X, -)$에 의해 완전히 결정된다는 정리이다. 이는 대상 자체를 분석하는 대신, 그 대상이 다른 대상들과 맺는 '관계(사상)'를 통해 대상을 이해할 수 있음을 시사한다.
- 이론 컴퓨터 과학 (모나드): 모나드(Monad)는 자기 함자(Endofunctor) $T: \mathcal{C} \to \mathcal{C}$와 두 개의 자연 변환인 $\eta: \text{Id}_{\mathcal{C}} \Rightarrow T$ (unit) 및 $\mu: T^2 \Rightarrow T$ (multiplication)로 정의된다. 이는 현대 프로그래밍 언어의 부작용(Side-effect) 처리 및 타입 시스템 설계에 핵심적인 역할을 한다.
- 대수적 위상수학: 공간의 위상적 성질을 대수적 성질(군, 환 등)로 변환하여 분석하는 도구로 함자가 광범위하게 사용된다.
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.